home *** CD-ROM | disk | FTP | other *** search
- /*****************************************/
- /* Cursor Shake 1.0 */
- /* By Will Schenk */
- /* I can be reached at */
- /* schenkl@vax.cs.hscsyr.edu */
- /* Public Domain */
- /* The mouse position routines are taken */
- /* From MacTutor. */
- /*****************************************/
-
- #include <SetUpA4.h>
-
- #define Trap 0xA9DA
-
- long oldTrapAdd;
- pascal void TEInitPatch( TEHandle h );
-
- main()
- {
- Handle h;
- Ptr myPtr;
-
- asm {
- move.l A0, myPtr
- }
-
- RememberA0();
- SetUpA4();
-
- if(!Button()) {
- h = RecoverHandle(myPtr);
- DetachResource(h);
- HLock( h );
- oldTrapAdd = NGetTrapAddress(Trap,ToolTrap);
- NSetTrapAddress(TEInitPatch,Trap,ToolTrap);
- }
- else
- SysBeep( 30 );
- RestoreA4();
- }
-
- void MousePos(newPos)
- Point newPos;
- {
-
- int *MTemp;
- char *CrsrNew;
- int i;
-
- MTemp = (int *) 0x828; /* Set up our globals... */
- CrsrNew = (char *) 0x8CE;
-
- /* Points are stored as (row, column) or (v, h) in memory... */
- /* Set our globals... */
- for (i=0;i<3;i++) {
- *(MTemp+2*i) = newPos.v;
- *(MTemp+2*i+1) = newPos.h;
- }
-
- *CrsrNew = -1; /* There's a new position */
- }
-
- pascal void TEInitPatch( TEHandle h )
- {
- Point p;
- SetUpA4();
- GetMouse( &p );
- LocalToGlobal( &p );
- p.h += Random() % 2;
- p.v += Random() % 2;
- MousePos( p );
- CallPascal( h, oldTrapAdd );
- RestoreA4();
- }